/*
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
*/
$(document).ready(function() {

    $(".click-title").mouseenter( function(    e){
        e.preventDefault();
        this.style.cursor="pointer";
    });
    $(".click-title").mousedown( function(event){
        event.preventDefault();
    });

    // Ugly code while this script is shared among several pages
    try{
        refreshHitsPerSecond(true);
    } catch(e){}
    try{
        refreshResponseTimeOverTime(true);
    } catch(e){}
    try{
        refreshResponseTimePercentiles();
    } catch(e){}
});


var responseTimePercentilesInfos = {
        data: {"result": {"minY": 23.0, "minX": 0.0, "maxY": 22106.0, "series": [{"data": [[0.0, 574.0], [0.1, 749.0], [0.2, 773.0], [0.3, 780.0], [0.4, 904.0], [0.5, 989.0], [0.6, 1021.0], [0.7, 1122.0], [0.8, 1164.0], [0.9, 1210.0], [1.0, 1225.0], [1.1, 1230.0], [1.2, 1242.0], [1.3, 1243.0], [1.4, 1252.0], [1.5, 1254.0], [1.6, 1260.0], [1.7, 1264.0], [1.8, 1266.0], [1.9, 1275.0], [2.0, 1284.0], [2.1, 1288.0], [2.2, 1293.0], [2.3, 1300.0], [2.4, 1303.0], [2.5, 1309.0], [2.6, 1313.0], [2.7, 1321.0], [2.8, 1325.0], [2.9, 1328.0], [3.0, 1331.0], [3.1, 1332.0], [3.2, 1334.0], [3.3, 1336.0], [3.4, 1336.0], [3.5, 1339.0], [3.6, 1347.0], [3.7, 1349.0], [3.8, 1349.0], [3.9, 1351.0], [4.0, 1353.0], [4.1, 1358.0], [4.2, 1361.0], [4.3, 1368.0], [4.4, 1375.0], [4.5, 1378.0], [4.6, 1385.0], [4.7, 1386.0], [4.8, 1391.0], [4.9, 1394.0], [5.0, 1400.0], [5.1, 1407.0], [5.2, 1408.0], [5.3, 1411.0], [5.4, 1420.0], [5.5, 1422.0], [5.6, 1428.0], [5.7, 1433.0], [5.8, 1434.0], [5.9, 1442.0], [6.0, 1444.0], [6.1, 1450.0], [6.2, 1454.0], [6.3, 1458.0], [6.4, 1461.0], [6.5, 1462.0], [6.6, 1465.0], [6.7, 1475.0], [6.8, 1479.0], [6.9, 1482.0], [7.0, 1494.0], [7.1, 1495.0], [7.2, 1502.0], [7.3, 1511.0], [7.4, 1514.0], [7.5, 1518.0], [7.6, 1531.0], [7.7, 1540.0], [7.8, 1541.0], [7.9, 1545.0], [8.0, 1550.0], [8.1, 1554.0], [8.2, 1567.0], [8.3, 1574.0], [8.4, 1585.0], [8.5, 1602.0], [8.6, 1608.0], [8.7, 1611.0], [8.8, 1616.0], [8.9, 1620.0], [9.0, 1634.0], [9.1, 1645.0], [9.2, 1668.0], [9.3, 1679.0], [9.4, 1687.0], [9.5, 1720.0], [9.6, 1735.0], [9.7, 1746.0], [9.8, 1758.0], [9.9, 1809.0], [10.0, 1815.0], [10.1, 1849.0], [10.2, 1878.0], [10.3, 1916.0], [10.4, 1989.0], [10.5, 2039.0], [10.6, 2143.0], [10.7, 2300.0], [10.8, 2328.0], [10.9, 2427.0], [11.0, 2434.0], [11.1, 2788.0], [11.2, 2894.0], [11.3, 2948.0], [11.4, 2991.0], [11.5, 3002.0], [11.6, 3009.0], [11.7, 3026.0], [11.8, 3036.0], [11.9, 3041.0], [12.0, 3071.0], [12.1, 3082.0], [12.2, 3098.0], [12.3, 3106.0], [12.4, 3117.0], [12.5, 3125.0], [12.6, 3139.0], [12.7, 3154.0], [12.8, 3163.0], [12.9, 3184.0], [13.0, 3207.0], [13.1, 3229.0], [13.2, 3246.0], [13.3, 3259.0], [13.4, 3273.0], [13.5, 3275.0], [13.6, 3284.0], [13.7, 3286.0], [13.8, 3293.0], [13.9, 3303.0], [14.0, 3309.0], [14.1, 3311.0], [14.2, 3320.0], [14.3, 3335.0], [14.4, 3342.0], [14.5, 3346.0], [14.6, 3361.0], [14.7, 3365.0], [14.8, 3391.0], [14.9, 3400.0], [15.0, 3406.0], [15.1, 3421.0], [15.2, 3437.0], [15.3, 3446.0], [15.4, 3454.0], [15.5, 3454.0], [15.6, 3457.0], [15.7, 3479.0], [15.8, 3490.0], [15.9, 3498.0], [16.0, 3516.0], [16.1, 3524.0], [16.2, 3542.0], [16.3, 3550.0], [16.4, 3555.0], [16.5, 3581.0], [16.6, 3607.0], [16.7, 3612.0], [16.8, 3619.0], [16.9, 3629.0], [17.0, 3644.0], [17.1, 3657.0], [17.2, 3670.0], [17.3, 3679.0], [17.4, 3697.0], [17.5, 3707.0], [17.6, 3734.0], [17.7, 3747.0], [17.8, 3755.0], [17.9, 3765.0], [18.0, 3811.0], [18.1, 3814.0], [18.2, 3829.0], [18.3, 3846.0], [18.4, 3884.0], [18.5, 3889.0], [18.6, 3914.0], [18.7, 3950.0], [18.8, 3973.0], [18.9, 4040.0], [19.0, 4051.0], [19.1, 4065.0], [19.2, 4105.0], [19.3, 4108.0], [19.4, 4119.0], [19.5, 4207.0], [19.6, 4213.0], [19.7, 4307.0], [19.8, 4341.0], [19.9, 4416.0], [20.0, 4467.0], [20.1, 4537.0], [20.2, 4604.0], [20.3, 4631.0], [20.4, 4653.0], [20.5, 4677.0], [20.6, 4695.0], [20.7, 4730.0], [20.8, 4749.0], [20.9, 4773.0], [21.0, 4817.0], [21.1, 4869.0], [21.2, 4898.0], [21.3, 4912.0], [21.4, 4918.0], [21.5, 4929.0], [21.6, 4935.0], [21.7, 4950.0], [21.8, 4988.0], [21.9, 4998.0], [22.0, 5005.0], [22.1, 5011.0], [22.2, 5030.0], [22.3, 5080.0], [22.4, 5132.0], [22.5, 5164.0], [22.6, 5179.0], [22.7, 5188.0], [22.8, 5212.0], [22.9, 5213.0], [23.0, 5217.0], [23.1, 5227.0], [23.2, 5238.0], [23.3, 5262.0], [23.4, 5301.0], [23.5, 5312.0], [23.6, 5323.0], [23.7, 5344.0], [23.8, 5364.0], [23.9, 5366.0], [24.0, 5372.0], [24.1, 5392.0], [24.2, 5396.0], [24.3, 5435.0], [24.4, 5443.0], [24.5, 5458.0], [24.6, 5484.0], [24.7, 5487.0], [24.8, 5501.0], [24.9, 5514.0], [25.0, 5558.0], [25.1, 5565.0], [25.2, 5575.0], [25.3, 5589.0], [25.4, 5611.0], [25.5, 5614.0], [25.6, 5628.0], [25.7, 5635.0], [25.8, 5642.0], [25.9, 5662.0], [26.0, 5683.0], [26.1, 5692.0], [26.2, 5703.0], [26.3, 5711.0], [26.4, 5724.0], [26.5, 5729.0], [26.6, 5737.0], [26.7, 5741.0], [26.8, 5747.0], [26.9, 5757.0], [27.0, 5764.0], [27.1, 5774.0], [27.2, 5788.0], [27.3, 5790.0], [27.4, 5793.0], [27.5, 5799.0], [27.6, 5818.0], [27.7, 5832.0], [27.8, 5840.0], [27.9, 5846.0], [28.0, 5868.0], [28.1, 5869.0], [28.2, 5885.0], [28.3, 5898.0], [28.4, 5905.0], [28.5, 5914.0], [28.6, 5929.0], [28.7, 5933.0], [28.8, 5937.0], [28.9, 5967.0], [29.0, 5969.0], [29.1, 5986.0], [29.2, 5997.0], [29.3, 6028.0], [29.4, 6056.0], [29.5, 6084.0], [29.6, 6100.0], [29.7, 6126.0], [29.8, 6163.0], [29.9, 6179.0], [30.0, 6200.0], [30.1, 6215.0], [30.2, 6221.0], [30.3, 6225.0], [30.4, 6245.0], [30.5, 6246.0], [30.6, 6254.0], [30.7, 6267.0], [30.8, 6272.0], [30.9, 6296.0], [31.0, 6307.0], [31.1, 6309.0], [31.2, 6315.0], [31.3, 6331.0], [31.4, 6366.0], [31.5, 6380.0], [31.6, 6403.0], [31.7, 6434.0], [31.8, 6444.0], [31.9, 6452.0], [32.0, 6474.0], [32.1, 6478.0], [32.2, 6515.0], [32.3, 6522.0], [32.4, 6542.0], [32.5, 6570.0], [32.6, 6583.0], [32.7, 6605.0], [32.8, 6622.0], [32.9, 6640.0], [33.0, 6646.0], [33.1, 6683.0], [33.2, 6714.0], [33.3, 6719.0], [33.4, 6735.0], [33.5, 6759.0], [33.6, 6775.0], [33.7, 6784.0], [33.8, 6809.0], [33.9, 6822.0], [34.0, 6834.0], [34.1, 6852.0], [34.2, 6881.0], [34.3, 6955.0], [34.4, 6997.0], [34.5, 7003.0], [34.6, 7037.0], [34.7, 7094.0], [34.8, 7160.0], [34.9, 7185.0], [35.0, 7219.0], [35.1, 7226.0], [35.2, 7233.0], [35.3, 7293.0], [35.4, 7339.0], [35.5, 7364.0], [35.6, 7381.0], [35.7, 7425.0], [35.8, 7481.0], [35.9, 7499.0], [36.0, 7549.0], [36.1, 7566.0], [36.2, 7613.0], [36.3, 7626.0], [36.4, 7638.0], [36.5, 7648.0], [36.6, 7662.0], [36.7, 7748.0], [36.8, 7772.0], [36.9, 7790.0], [37.0, 7806.0], [37.1, 7850.0], [37.2, 7878.0], [37.3, 7921.0], [37.4, 7947.0], [37.5, 7958.0], [37.6, 7984.0], [37.7, 8004.0], [37.8, 8045.0], [37.9, 8077.0], [38.0, 8144.0], [38.1, 8157.0], [38.2, 8160.0], [38.3, 8182.0], [38.4, 8205.0], [38.5, 8233.0], [38.6, 8262.0], [38.7, 8305.0], [38.8, 8333.0], [38.9, 8348.0], [39.0, 8358.0], [39.1, 8422.0], [39.2, 8441.0], [39.3, 8460.0], [39.4, 8502.0], [39.5, 8530.0], [39.6, 8532.0], [39.7, 8570.0], [39.8, 8588.0], [39.9, 8589.0], [40.0, 8592.0], [40.1, 8607.0], [40.2, 8668.0], [40.3, 8674.0], [40.4, 8707.0], [40.5, 8728.0], [40.6, 8760.0], [40.7, 8814.0], [40.8, 8870.0], [40.9, 8883.0], [41.0, 8900.0], [41.1, 8953.0], [41.2, 8990.0], [41.3, 9023.0], [41.4, 9028.0], [41.5, 9048.0], [41.6, 9078.0], [41.7, 9107.0], [41.8, 9114.0], [41.9, 9151.0], [42.0, 9204.0], [42.1, 9228.0], [42.2, 9272.0], [42.3, 9289.0], [42.4, 9294.0], [42.5, 9350.0], [42.6, 9412.0], [42.7, 9422.0], [42.8, 9483.0], [42.9, 9504.0], [43.0, 9508.0], [43.1, 9536.0], [43.2, 9559.0], [43.3, 9606.0], [43.4, 9633.0], [43.5, 9648.0], [43.6, 9675.0], [43.7, 9745.0], [43.8, 9797.0], [43.9, 9837.0], [44.0, 9864.0], [44.1, 9937.0], [44.2, 9952.0], [44.3, 9975.0], [44.4, 9986.0], [44.5, 10006.0], [44.6, 10019.0], [44.7, 10163.0], [44.8, 10257.0], [44.9, 10275.0], [45.0, 10293.0], [45.1, 10350.0], [45.2, 10372.0], [45.3, 10379.0], [45.4, 10389.0], [45.5, 10401.0], [45.6, 10434.0], [45.7, 10447.0], [45.8, 10503.0], [45.9, 10520.0], [46.0, 10550.0], [46.1, 10585.0], [46.2, 10604.0], [46.3, 10620.0], [46.4, 10644.0], [46.5, 10666.0], [46.6, 10676.0], [46.7, 10706.0], [46.8, 10709.0], [46.9, 10745.0], [47.0, 10752.0], [47.1, 10760.0], [47.2, 10779.0], [47.3, 10784.0], [47.4, 10838.0], [47.5, 10859.0], [47.6, 10875.0], [47.7, 10907.0], [47.8, 10929.0], [47.9, 10947.0], [48.0, 10982.0], [48.1, 11004.0], [48.2, 11012.0], [48.3, 11027.0], [48.4, 11037.0], [48.5, 11050.0], [48.6, 11071.0], [48.7, 11100.0], [48.8, 11121.0], [48.9, 11168.0], [49.0, 11200.0], [49.1, 11219.0], [49.2, 11233.0], [49.3, 11242.0], [49.4, 11244.0], [49.5, 11255.0], [49.6, 11277.0], [49.7, 11283.0], [49.8, 11318.0], [49.9, 11328.0], [50.0, 11374.0], [50.1, 11387.0], [50.2, 11402.0], [50.3, 11420.0], [50.4, 11435.0], [50.5, 11454.0], [50.6, 11489.0], [50.7, 11495.0], [50.8, 11508.0], [50.9, 11545.0], [51.0, 11549.0], [51.1, 11561.0], [51.2, 11563.0], [51.3, 11582.0], [51.4, 11590.0], [51.5, 11604.0], [51.6, 11617.0], [51.7, 11621.0], [51.8, 11668.0], [51.9, 11686.0], [52.0, 11703.0], [52.1, 11727.0], [52.2, 11751.0], [52.3, 11774.0], [52.4, 11793.0], [52.5, 11819.0], [52.6, 11830.0], [52.7, 11832.0], [52.8, 11855.0], [52.9, 11883.0], [53.0, 11895.0], [53.1, 11901.0], [53.2, 11923.0], [53.3, 11928.0], [53.4, 11959.0], [53.5, 11978.0], [53.6, 12002.0], [53.7, 12021.0], [53.8, 12064.0], [53.9, 12069.0], [54.0, 12070.0], [54.1, 12089.0], [54.2, 12115.0], [54.3, 12119.0], [54.4, 12154.0], [54.5, 12182.0], [54.6, 12191.0], [54.7, 12195.0], [54.8, 12202.0], [54.9, 12209.0], [55.0, 12229.0], [55.1, 12230.0], [55.2, 12271.0], [55.3, 12280.0], [55.4, 12334.0], [55.5, 12344.0], [55.6, 12352.0], [55.7, 12354.0], [55.8, 12363.0], [55.9, 12380.0], [56.0, 12393.0], [56.1, 12404.0], [56.2, 12428.0], [56.3, 12447.0], [56.4, 12463.0], [56.5, 12491.0], [56.6, 12524.0], [56.7, 12559.0], [56.8, 12573.0], [56.9, 12578.0], [57.0, 12592.0], [57.1, 12628.0], [57.2, 12644.0], [57.3, 12664.0], [57.4, 12707.0], [57.5, 12716.0], [57.6, 12741.0], [57.7, 12748.0], [57.8, 12753.0], [57.9, 12769.0], [58.0, 12779.0], [58.1, 12800.0], [58.2, 12801.0], [58.3, 12823.0], [58.4, 12843.0], [58.5, 12852.0], [58.6, 12871.0], [58.7, 12874.0], [58.8, 12879.0], [58.9, 12888.0], [59.0, 12910.0], [59.1, 12921.0], [59.2, 12934.0], [59.3, 12937.0], [59.4, 12973.0], [59.5, 12982.0], [59.6, 12988.0], [59.7, 12991.0], [59.8, 13004.0], [59.9, 13017.0], [60.0, 13023.0], [60.1, 13050.0], [60.2, 13051.0], [60.3, 13065.0], [60.4, 13079.0], [60.5, 13103.0], [60.6, 13113.0], [60.7, 13122.0], [60.8, 13141.0], [60.9, 13163.0], [61.0, 13171.0], [61.1, 13183.0], [61.2, 13209.0], [61.3, 13212.0], [61.4, 13214.0], [61.5, 13232.0], [61.6, 13240.0], [61.7, 13252.0], [61.8, 13269.0], [61.9, 13283.0], [62.0, 13303.0], [62.1, 13342.0], [62.2, 13346.0], [62.3, 13355.0], [62.4, 13378.0], [62.5, 13424.0], [62.6, 13429.0], [62.7, 13435.0], [62.8, 13449.0], [62.9, 13462.0], [63.0, 13476.0], [63.1, 13480.0], [63.2, 13487.0], [63.3, 13521.0], [63.4, 13565.0], [63.5, 13579.0], [63.6, 13608.0], [63.7, 13617.0], [63.8, 13629.0], [63.9, 13639.0], [64.0, 13686.0], [64.1, 13708.0], [64.2, 13711.0], [64.3, 13730.0], [64.4, 13742.0], [64.5, 13768.0], [64.6, 13794.0], [64.7, 13809.0], [64.8, 13855.0], [64.9, 13949.0], [65.0, 13958.0], [65.1, 13963.0], [65.2, 14030.0], [65.3, 14108.0], [65.4, 14128.0], [65.5, 14137.0], [65.6, 14158.0], [65.7, 14179.0], [65.8, 14191.0], [65.9, 14198.0], [66.0, 14207.0], [66.1, 14252.0], [66.2, 14288.0], [66.3, 14305.0], [66.4, 14311.0], [66.5, 14327.0], [66.6, 14335.0], [66.7, 14342.0], [66.8, 14344.0], [66.9, 14370.0], [67.0, 14394.0], [67.1, 14401.0], [67.2, 14409.0], [67.3, 14411.0], [67.4, 14431.0], [67.5, 14443.0], [67.6, 14449.0], [67.7, 14477.0], [67.8, 14489.0], [67.9, 14534.0], [68.0, 14538.0], [68.1, 14545.0], [68.2, 14556.0], [68.3, 14603.0], [68.4, 14624.0], [68.5, 14638.0], [68.6, 14645.0], [68.7, 14666.0], [68.8, 14687.0], [68.9, 14703.0], [69.0, 14714.0], [69.1, 14741.0], [69.2, 14750.0], [69.3, 14764.0], [69.4, 14768.0], [69.5, 14781.0], [69.6, 14793.0], [69.7, 14845.0], [69.8, 14859.0], [69.9, 14872.0], [70.0, 14875.0], [70.1, 14882.0], [70.2, 14884.0], [70.3, 14904.0], [70.4, 14911.0], [70.5, 14923.0], [70.6, 14927.0], [70.7, 14953.0], [70.8, 14959.0], [70.9, 14977.0], [71.0, 15002.0], [71.1, 15042.0], [71.2, 15044.0], [71.3, 15083.0], [71.4, 15107.0], [71.5, 15119.0], [71.6, 15127.0], [71.7, 15137.0], [71.8, 15147.0], [71.9, 15165.0], [72.0, 15170.0], [72.1, 15222.0], [72.2, 15253.0], [72.3, 15259.0], [72.4, 15269.0], [72.5, 15291.0], [72.6, 15301.0], [72.7, 15310.0], [72.8, 15340.0], [72.9, 15347.0], [73.0, 15356.0], [73.1, 15361.0], [73.2, 15387.0], [73.3, 15405.0], [73.4, 15430.0], [73.5, 15445.0], [73.6, 15455.0], [73.7, 15487.0], [73.8, 15488.0], [73.9, 15495.0], [74.0, 15509.0], [74.1, 15515.0], [74.2, 15551.0], [74.3, 15564.0], [74.4, 15581.0], [74.5, 15589.0], [74.6, 15606.0], [74.7, 15617.0], [74.8, 15630.0], [74.9, 15654.0], [75.0, 15670.0], [75.1, 15677.0], [75.2, 15694.0], [75.3, 15698.0], [75.4, 15707.0], [75.5, 15714.0], [75.6, 15734.0], [75.7, 15736.0], [75.8, 15739.0], [75.9, 15742.0], [76.0, 15764.0], [76.1, 15783.0], [76.2, 15785.0], [76.3, 15801.0], [76.4, 15806.0], [76.5, 15817.0], [76.6, 15823.0], [76.7, 15831.0], [76.8, 15855.0], [76.9, 15857.0], [77.0, 15868.0], [77.1, 15890.0], [77.2, 15899.0], [77.3, 15908.0], [77.4, 15915.0], [77.5, 15933.0], [77.6, 15943.0], [77.7, 15954.0], [77.8, 15969.0], [77.9, 15973.0], [78.0, 15976.0], [78.1, 15980.0], [78.2, 15991.0], [78.3, 16014.0], [78.4, 16019.0], [78.5, 16023.0], [78.6, 16035.0], [78.7, 16044.0], [78.8, 16056.0], [78.9, 16056.0], [79.0, 16069.0], [79.1, 16079.0], [79.2, 16079.0], [79.3, 16088.0], [79.4, 16093.0], [79.5, 16121.0], [79.6, 16141.0], [79.7, 16142.0], [79.8, 16165.0], [79.9, 16172.0], [80.0, 16185.0], [80.1, 16191.0], [80.2, 16196.0], [80.3, 16210.0], [80.4, 16223.0], [80.5, 16240.0], [80.6, 16252.0], [80.7, 16266.0], [80.8, 16282.0], [80.9, 16294.0], [81.0, 16306.0], [81.1, 16307.0], [81.2, 16322.0], [81.3, 16342.0], [81.4, 16354.0], [81.5, 16359.0], [81.6, 16388.0], [81.7, 16402.0], [81.8, 16405.0], [81.9, 16418.0], [82.0, 16425.0], [82.1, 16447.0], [82.2, 16461.0], [82.3, 16478.0], [82.4, 16492.0], [82.5, 16494.0], [82.6, 16519.0], [82.7, 16526.0], [82.8, 16546.0], [82.9, 16552.0], [83.0, 16559.0], [83.1, 16589.0], [83.2, 16598.0], [83.3, 16611.0], [83.4, 16613.0], [83.5, 16641.0], [83.6, 16655.0], [83.7, 16680.0], [83.8, 16693.0], [83.9, 16695.0], [84.0, 16709.0], [84.1, 16716.0], [84.2, 16728.0], [84.3, 16741.0], [84.4, 16765.0], [84.5, 16774.0], [84.6, 16778.0], [84.7, 16810.0], [84.8, 16820.0], [84.9, 16848.0], [85.0, 16860.0], [85.1, 16872.0], [85.2, 16880.0], [85.3, 16906.0], [85.4, 16915.0], [85.5, 16925.0], [85.6, 16938.0], [85.7, 16969.0], [85.8, 16987.0], [85.9, 16991.0], [86.0, 16995.0], [86.1, 17022.0], [86.2, 17036.0], [86.3, 17040.0], [86.4, 17053.0], [86.5, 17070.0], [86.6, 17087.0], [86.7, 17116.0], [86.8, 17118.0], [86.9, 17133.0], [87.0, 17138.0], [87.1, 17164.0], [87.2, 17169.0], [87.3, 17199.0], [87.4, 17206.0], [87.5, 17226.0], [87.6, 17231.0], [87.7, 17236.0], [87.8, 17248.0], [87.9, 17260.0], [88.0, 17287.0], [88.1, 17309.0], [88.2, 17322.0], [88.3, 17334.0], [88.4, 17359.0], [88.5, 17383.0], [88.6, 17398.0], [88.7, 17405.0], [88.8, 17411.0], [88.9, 17456.0], [89.0, 17473.0], [89.1, 17486.0], [89.2, 17495.0], [89.3, 17507.0], [89.4, 17529.0], [89.5, 17538.0], [89.6, 17557.0], [89.7, 17579.0], [89.8, 17625.0], [89.9, 17637.0], [90.0, 17685.0], [90.1, 17710.0], [90.2, 17738.0], [90.3, 17753.0], [90.4, 17803.0], [90.5, 17809.0], [90.6, 17812.0], [90.7, 17862.0], [90.8, 17866.0], [90.9, 17883.0], [91.0, 17896.0], [91.1, 17909.0], [91.2, 17916.0], [91.3, 17939.0], [91.4, 17942.0], [91.5, 17960.0], [91.6, 17971.0], [91.7, 17986.0], [91.8, 17997.0], [91.9, 18021.0], [92.0, 18037.0], [92.1, 18056.0], [92.2, 18078.0], [92.3, 18094.0], [92.4, 18103.0], [92.5, 18117.0], [92.6, 18125.0], [92.7, 18141.0], [92.8, 18146.0], [92.9, 18167.0], [93.0, 18168.0], [93.1, 18183.0], [93.2, 18203.0], [93.3, 18218.0], [93.4, 18258.0], [93.5, 18280.0], [93.6, 18312.0], [93.7, 18338.0], [93.8, 18348.0], [93.9, 18380.0], [94.0, 18413.0], [94.1, 18449.0], [94.2, 18493.0], [94.3, 18497.0], [94.4, 18506.0], [94.5, 18518.0], [94.6, 18538.0], [94.7, 18573.0], [94.8, 18596.0], [94.9, 18614.0], [95.0, 18620.0], [95.1, 18646.0], [95.2, 18668.0], [95.3, 18700.0], [95.4, 18706.0], [95.5, 18759.0], [95.6, 18763.0], [95.7, 18785.0], [95.8, 18795.0], [95.9, 18804.0], [96.0, 18846.0], [96.1, 18866.0], [96.2, 18874.0], [96.3, 18886.0], [96.4, 18956.0], [96.5, 19009.0], [96.6, 19034.0], [96.7, 19053.0], [96.8, 19121.0], [96.9, 19181.0], [97.0, 19244.0], [97.1, 19292.0], [97.2, 19316.0], [97.3, 19327.0], [97.4, 19376.0], [97.5, 19420.0], [97.6, 19432.0], [97.7, 19583.0], [97.8, 19595.0], [97.9, 19690.0], [98.0, 19730.0], [98.1, 19791.0], [98.2, 19905.0], [98.3, 19988.0], [98.4, 19992.0], [98.5, 20075.0], [98.6, 20129.0], [98.7, 20226.0], [98.8, 20251.0], [98.9, 20352.0], [99.0, 20457.0], [99.1, 20513.0], [99.2, 20610.0], [99.3, 20711.0], [99.4, 20975.0], [99.5, 21020.0], [99.6, 21168.0], [99.7, 21254.0], [99.8, 21501.0], [99.9, 21820.0]], "isOverall": false, "label": "MySQL JDBC Request", "isController": false}, {"data": [[0.0, 23.0], [0.1, 24.0], [0.2, 24.0], [0.3, 25.0], [0.4, 25.0], [0.5, 25.0], [0.6, 25.0], [0.7, 25.0], [0.8, 25.0], [0.9, 25.0], [1.0, 25.0], [1.1, 25.0], [1.2, 25.0], [1.3, 25.0], [1.4, 26.0], [1.5, 26.0], [1.6, 26.0], [1.7, 26.0], [1.8, 26.0], [1.9, 26.0], [2.0, 26.0], [2.1, 26.0], [2.2, 26.0], [2.3, 26.0], [2.4, 26.0], [2.5, 26.0], [2.6, 26.0], [2.7, 26.0], [2.8, 26.0], [2.9, 27.0], [3.0, 27.0], [3.1, 27.0], [3.2, 27.0], [3.3, 27.0], [3.4, 27.0], [3.5, 27.0], [3.6, 27.0], [3.7, 27.0], [3.8, 27.0], [3.9, 27.0], [4.0, 27.0], [4.1, 27.0], [4.2, 27.0], [4.3, 27.0], [4.4, 27.0], [4.5, 27.0], [4.6, 27.0], [4.7, 27.0], [4.8, 27.0], [4.9, 27.0], [5.0, 27.0], [5.1, 27.0], [5.2, 28.0], [5.3, 28.0], [5.4, 28.0], [5.5, 28.0], [5.6, 28.0], [5.7, 28.0], [5.8, 28.0], [5.9, 28.0], [6.0, 28.0], [6.1, 28.0], [6.2, 28.0], [6.3, 28.0], [6.4, 28.0], [6.5, 28.0], [6.6, 28.0], [6.7, 28.0], [6.8, 28.0], [6.9, 28.0], [7.0, 28.0], [7.1, 28.0], [7.2, 28.0], [7.3, 28.0], [7.4, 28.0], [7.5, 28.0], [7.6, 28.0], [7.7, 29.0], [7.8, 29.0], [7.9, 29.0], [8.0, 29.0], [8.1, 29.0], [8.2, 29.0], [8.3, 29.0], [8.4, 29.0], [8.5, 29.0], [8.6, 29.0], [8.7, 29.0], [8.8, 29.0], [8.9, 29.0], [9.0, 29.0], [9.1, 29.0], [9.2, 29.0], [9.3, 29.0], [9.4, 29.0], [9.5, 29.0], [9.6, 29.0], [9.7, 29.0], [9.8, 29.0], [9.9, 29.0], [10.0, 29.0], [10.1, 29.0], [10.2, 29.0], [10.3, 29.0], [10.4, 29.0], [10.5, 29.0], [10.6, 29.0], [10.7, 29.0], [10.8, 29.0], [10.9, 29.0], [11.0, 29.0], [11.1, 29.0], [11.2, 29.0], [11.3, 29.0], [11.4, 29.0], [11.5, 29.0], [11.6, 29.0], [11.7, 29.0], [11.8, 29.0], [11.9, 30.0], [12.0, 30.0], [12.1, 30.0], [12.2, 30.0], [12.3, 30.0], [12.4, 30.0], [12.5, 30.0], [12.6, 30.0], [12.7, 30.0], [12.8, 30.0], [12.9, 30.0], [13.0, 30.0], [13.1, 30.0], [13.2, 30.0], [13.3, 30.0], [13.4, 30.0], [13.5, 30.0], [13.6, 30.0], [13.7, 30.0], [13.8, 30.0], [13.9, 30.0], [14.0, 30.0], [14.1, 30.0], [14.2, 30.0], [14.3, 30.0], [14.4, 30.0], [14.5, 30.0], [14.6, 30.0], [14.7, 30.0], [14.8, 30.0], [14.9, 30.0], [15.0, 30.0], [15.1, 30.0], [15.2, 30.0], [15.3, 30.0], [15.4, 30.0], [15.5, 30.0], [15.6, 30.0], [15.7, 30.0], [15.8, 30.0], [15.9, 30.0], [16.0, 30.0], [16.1, 30.0], [16.2, 30.0], [16.3, 30.0], [16.4, 31.0], [16.5, 31.0], [16.6, 31.0], [16.7, 31.0], [16.8, 31.0], [16.9, 31.0], [17.0, 31.0], [17.1, 31.0], [17.2, 31.0], [17.3, 31.0], [17.4, 31.0], [17.5, 31.0], [17.6, 31.0], [17.7, 31.0], [17.8, 31.0], [17.9, 31.0], [18.0, 31.0], [18.1, 31.0], [18.2, 31.0], [18.3, 31.0], [18.4, 31.0], [18.5, 31.0], [18.6, 31.0], [18.7, 31.0], [18.8, 31.0], [18.9, 31.0], [19.0, 31.0], [19.1, 31.0], [19.2, 31.0], [19.3, 31.0], [19.4, 31.0], [19.5, 31.0], [19.6, 31.0], [19.7, 31.0], [19.8, 31.0], [19.9, 31.0], [20.0, 31.0], [20.1, 31.0], [20.2, 31.0], [20.3, 31.0], [20.4, 31.0], [20.5, 31.0], [20.6, 31.0], [20.7, 31.0], [20.8, 31.0], [20.9, 31.0], [21.0, 31.0], [21.1, 31.0], [21.2, 31.0], [21.3, 31.0], [21.4, 31.0], [21.5, 31.0], [21.6, 31.0], [21.7, 31.0], [21.8, 32.0], [21.9, 32.0], [22.0, 32.0], [22.1, 32.0], [22.2, 32.0], [22.3, 32.0], [22.4, 32.0], [22.5, 32.0], [22.6, 32.0], [22.7, 32.0], [22.8, 32.0], [22.9, 32.0], [23.0, 32.0], [23.1, 32.0], [23.2, 32.0], [23.3, 32.0], [23.4, 32.0], [23.5, 32.0], [23.6, 32.0], [23.7, 32.0], [23.8, 32.0], [23.9, 32.0], [24.0, 32.0], [24.1, 32.0], [24.2, 32.0], [24.3, 32.0], [24.4, 32.0], [24.5, 32.0], [24.6, 32.0], [24.7, 32.0], [24.8, 32.0], [24.9, 32.0], [25.0, 32.0], [25.1, 32.0], [25.2, 32.0], [25.3, 32.0], [25.4, 32.0], [25.5, 32.0], [25.6, 32.0], [25.7, 32.0], [25.8, 32.0], [25.9, 32.0], [26.0, 32.0], [26.1, 32.0], [26.2, 32.0], [26.3, 32.0], [26.4, 32.0], [26.5, 32.0], [26.6, 32.0], [26.7, 33.0], [26.8, 33.0], [26.9, 33.0], [27.0, 33.0], [27.1, 33.0], [27.2, 33.0], [27.3, 33.0], [27.4, 33.0], [27.5, 33.0], [27.6, 33.0], [27.7, 33.0], [27.8, 33.0], [27.9, 33.0], [28.0, 33.0], [28.1, 33.0], [28.2, 33.0], [28.3, 33.0], [28.4, 33.0], [28.5, 33.0], [28.6, 33.0], [28.7, 33.0], [28.8, 33.0], [28.9, 33.0], [29.0, 33.0], [29.1, 33.0], [29.2, 33.0], [29.3, 33.0], [29.4, 33.0], [29.5, 33.0], [29.6, 33.0], [29.7, 33.0], [29.8, 33.0], [29.9, 33.0], [30.0, 33.0], [30.1, 33.0], [30.2, 33.0], [30.3, 33.0], [30.4, 33.0], [30.5, 33.0], [30.6, 33.0], [30.7, 33.0], [30.8, 33.0], [30.9, 33.0], [31.0, 33.0], [31.1, 33.0], [31.2, 33.0], [31.3, 33.0], [31.4, 34.0], [31.5, 34.0], [31.6, 34.0], [31.7, 34.0], [31.8, 34.0], [31.9, 34.0], [32.0, 34.0], [32.1, 34.0], [32.2, 34.0], [32.3, 34.0], [32.4, 34.0], [32.5, 34.0], [32.6, 34.0], [32.7, 34.0], [32.8, 34.0], [32.9, 34.0], [33.0, 34.0], [33.1, 34.0], [33.2, 34.0], [33.3, 34.0], [33.4, 34.0], [33.5, 34.0], [33.6, 34.0], [33.7, 34.0], [33.8, 34.0], [33.9, 34.0], [34.0, 34.0], [34.1, 34.0], [34.2, 34.0], [34.3, 34.0], [34.4, 34.0], [34.5, 34.0], [34.6, 34.0], [34.7, 34.0], [34.8, 34.0], [34.9, 34.0], [35.0, 34.0], [35.1, 34.0], [35.2, 34.0], [35.3, 34.0], [35.4, 34.0], [35.5, 34.0], [35.6, 34.0], [35.7, 34.0], [35.8, 35.0], [35.9, 35.0], [36.0, 35.0], [36.1, 35.0], [36.2, 35.0], [36.3, 35.0], [36.4, 35.0], [36.5, 35.0], [36.6, 35.0], [36.7, 35.0], [36.8, 35.0], [36.9, 35.0], [37.0, 35.0], [37.1, 35.0], [37.2, 35.0], [37.3, 35.0], [37.4, 35.0], [37.5, 35.0], [37.6, 35.0], [37.7, 35.0], [37.8, 35.0], [37.9, 35.0], [38.0, 35.0], [38.1, 35.0], [38.2, 35.0], [38.3, 35.0], [38.4, 35.0], [38.5, 35.0], [38.6, 35.0], [38.7, 35.0], [38.8, 35.0], [38.9, 35.0], [39.0, 35.0], [39.1, 35.0], [39.2, 35.0], [39.3, 35.0], [39.4, 35.0], [39.5, 35.0], [39.6, 35.0], [39.7, 35.0], [39.8, 35.0], [39.9, 35.0], [40.0, 36.0], [40.1, 36.0], [40.2, 36.0], [40.3, 36.0], [40.4, 36.0], [40.5, 36.0], [40.6, 36.0], [40.7, 36.0], [40.8, 36.0], [40.9, 36.0], [41.0, 36.0], [41.1, 36.0], [41.2, 36.0], [41.3, 36.0], [41.4, 36.0], [41.5, 36.0], [41.6, 36.0], [41.7, 36.0], [41.8, 36.0], [41.9, 36.0], [42.0, 36.0], [42.1, 36.0], [42.2, 36.0], [42.3, 36.0], [42.4, 36.0], [42.5, 36.0], [42.6, 36.0], [42.7, 36.0], [42.8, 36.0], [42.9, 36.0], [43.0, 36.0], [43.1, 36.0], [43.2, 36.0], [43.3, 36.0], [43.4, 36.0], [43.5, 36.0], [43.6, 36.0], [43.7, 36.0], [43.8, 36.0], [43.9, 36.0], [44.0, 36.0], [44.1, 36.0], [44.2, 36.0], [44.3, 36.0], [44.4, 36.0], [44.5, 36.0], [44.6, 36.0], [44.7, 36.0], [44.8, 37.0], [44.9, 37.0], [45.0, 37.0], [45.1, 37.0], [45.2, 37.0], [45.3, 37.0], [45.4, 37.0], [45.5, 37.0], [45.6, 37.0], [45.7, 37.0], [45.8, 37.0], [45.9, 37.0], [46.0, 37.0], [46.1, 37.0], [46.2, 37.0], [46.3, 37.0], [46.4, 37.0], [46.5, 37.0], [46.6, 37.0], [46.7, 37.0], [46.8, 37.0], [46.9, 37.0], [47.0, 37.0], [47.1, 37.0], [47.2, 37.0], [47.3, 37.0], [47.4, 37.0], [47.5, 37.0], [47.6, 37.0], [47.7, 37.0], [47.8, 37.0], [47.9, 37.0], [48.0, 37.0], [48.1, 37.0], [48.2, 38.0], [48.3, 38.0], [48.4, 38.0], [48.5, 38.0], [48.6, 38.0], [48.7, 38.0], [48.8, 38.0], [48.9, 38.0], [49.0, 38.0], [49.1, 38.0], [49.2, 38.0], [49.3, 38.0], [49.4, 38.0], [49.5, 38.0], [49.6, 38.0], [49.7, 38.0], [49.8, 38.0], [49.9, 38.0], [50.0, 38.0], [50.1, 38.0], [50.2, 38.0], [50.3, 38.0], [50.4, 38.0], [50.5, 38.0], [50.6, 38.0], [50.7, 38.0], [50.8, 38.0], [50.9, 38.0], [51.0, 38.0], [51.1, 38.0], [51.2, 38.0], [51.3, 38.0], [51.4, 38.0], [51.5, 38.0], [51.6, 38.0], [51.7, 38.0], [51.8, 38.0], [51.9, 38.0], [52.0, 38.0], [52.1, 38.0], [52.2, 38.0], [52.3, 39.0], [52.4, 39.0], [52.5, 39.0], [52.6, 39.0], [52.7, 39.0], [52.8, 39.0], [52.9, 39.0], [53.0, 39.0], [53.1, 39.0], [53.2, 39.0], [53.3, 39.0], [53.4, 39.0], [53.5, 39.0], [53.6, 39.0], [53.7, 39.0], [53.8, 39.0], [53.9, 39.0], [54.0, 39.0], [54.1, 39.0], [54.2, 39.0], [54.3, 39.0], [54.4, 39.0], [54.5, 39.0], [54.6, 39.0], [54.7, 39.0], [54.8, 39.0], [54.9, 39.0], [55.0, 39.0], [55.1, 39.0], [55.2, 39.0], [55.3, 39.0], [55.4, 39.0], [55.5, 40.0], [55.6, 40.0], [55.7, 40.0], [55.8, 40.0], [55.9, 40.0], [56.0, 40.0], [56.1, 40.0], [56.2, 40.0], [56.3, 40.0], [56.4, 40.0], [56.5, 40.0], [56.6, 40.0], [56.7, 40.0], [56.8, 40.0], [56.9, 40.0], [57.0, 40.0], [57.1, 40.0], [57.2, 40.0], [57.3, 40.0], [57.4, 40.0], [57.5, 40.0], [57.6, 40.0], [57.7, 40.0], [57.8, 40.0], [57.9, 40.0], [58.0, 40.0], [58.1, 40.0], [58.2, 41.0], [58.3, 41.0], [58.4, 41.0], [58.5, 41.0], [58.6, 41.0], [58.7, 41.0], [58.8, 41.0], [58.9, 41.0], [59.0, 41.0], [59.1, 41.0], [59.2, 41.0], [59.3, 41.0], [59.4, 41.0], [59.5, 41.0], [59.6, 41.0], [59.7, 41.0], [59.8, 41.0], [59.9, 41.0], [60.0, 41.0], [60.1, 41.0], [60.2, 41.0], [60.3, 41.0], [60.4, 41.0], [60.5, 41.0], [60.6, 41.0], [60.7, 41.0], [60.8, 41.0], [60.9, 42.0], [61.0, 42.0], [61.1, 42.0], [61.2, 42.0], [61.3, 42.0], [61.4, 42.0], [61.5, 42.0], [61.6, 42.0], [61.7, 42.0], [61.8, 42.0], [61.9, 42.0], [62.0, 42.0], [62.1, 42.0], [62.2, 42.0], [62.3, 42.0], [62.4, 42.0], [62.5, 42.0], [62.6, 42.0], [62.7, 42.0], [62.8, 43.0], [62.9, 43.0], [63.0, 43.0], [63.1, 43.0], [63.2, 43.0], [63.3, 43.0], [63.4, 43.0], [63.5, 43.0], [63.6, 43.0], [63.7, 43.0], [63.8, 43.0], [63.9, 43.0], [64.0, 43.0], [64.1, 43.0], [64.2, 43.0], [64.3, 43.0], [64.4, 43.0], [64.5, 43.0], [64.6, 43.0], [64.7, 43.0], [64.8, 44.0], [64.9, 44.0], [65.0, 44.0], [65.1, 44.0], [65.2, 44.0], [65.3, 44.0], [65.4, 44.0], [65.5, 44.0], [65.6, 44.0], [65.7, 44.0], [65.8, 44.0], [65.9, 44.0], [66.0, 44.0], [66.1, 44.0], [66.2, 44.0], [66.3, 44.0], [66.4, 44.0], [66.5, 44.0], [66.6, 44.0], [66.7, 45.0], [66.8, 45.0], [66.9, 45.0], [67.0, 45.0], [67.1, 45.0], [67.2, 45.0], [67.3, 45.0], [67.4, 45.0], [67.5, 45.0], [67.6, 45.0], [67.7, 45.0], [67.8, 45.0], [67.9, 45.0], [68.0, 45.0], [68.1, 45.0], [68.2, 45.0], [68.3, 45.0], [68.4, 45.0], [68.5, 45.0], [68.6, 45.0], [68.7, 46.0], [68.8, 46.0], [68.9, 46.0], [69.0, 46.0], [69.1, 46.0], [69.2, 46.0], [69.3, 46.0], [69.4, 46.0], [69.5, 46.0], [69.6, 46.0], [69.7, 46.0], [69.8, 46.0], [69.9, 46.0], [70.0, 46.0], [70.1, 46.0], [70.2, 47.0], [70.3, 47.0], [70.4, 47.0], [70.5, 47.0], [70.6, 47.0], [70.7, 47.0], [70.8, 47.0], [70.9, 47.0], [71.0, 47.0], [71.1, 47.0], [71.2, 47.0], [71.3, 47.0], [71.4, 47.0], [71.5, 47.0], [71.6, 47.0], [71.7, 47.0], [71.8, 48.0], [71.9, 48.0], [72.0, 48.0], [72.1, 48.0], [72.2, 48.0], [72.3, 48.0], [72.4, 48.0], [72.5, 48.0], [72.6, 48.0], [72.7, 48.0], [72.8, 48.0], [72.9, 48.0], [73.0, 48.0], [73.1, 49.0], [73.2, 49.0], [73.3, 49.0], [73.4, 49.0], [73.5, 49.0], [73.6, 49.0], [73.7, 49.0], [73.8, 49.0], [73.9, 49.0], [74.0, 49.0], [74.1, 49.0], [74.2, 49.0], [74.3, 49.0], [74.4, 49.0], [74.5, 49.0], [74.6, 49.0], [74.7, 49.0], [74.8, 49.0], [74.9, 50.0], [75.0, 50.0], [75.1, 50.0], [75.2, 50.0], [75.3, 50.0], [75.4, 50.0], [75.5, 50.0], [75.6, 50.0], [75.7, 50.0], [75.8, 51.0], [75.9, 51.0], [76.0, 51.0], [76.1, 51.0], [76.2, 51.0], [76.3, 51.0], [76.4, 51.0], [76.5, 51.0], [76.6, 51.0], [76.7, 51.0], [76.8, 52.0], [76.9, 52.0], [77.0, 52.0], [77.1, 52.0], [77.2, 52.0], [77.3, 52.0], [77.4, 52.0], [77.5, 52.0], [77.6, 52.0], [77.7, 52.0], [77.8, 52.0], [77.9, 53.0], [78.0, 53.0], [78.1, 53.0], [78.2, 53.0], [78.3, 53.0], [78.4, 53.0], [78.5, 53.0], [78.6, 53.0], [78.7, 53.0], [78.8, 53.0], [78.9, 53.0], [79.0, 53.0], [79.1, 53.0], [79.2, 53.0], [79.3, 54.0], [79.4, 54.0], [79.5, 54.0], [79.6, 54.0], [79.7, 54.0], [79.8, 54.0], [79.9, 54.0], [80.0, 54.0], [80.1, 54.0], [80.2, 55.0], [80.3, 55.0], [80.4, 55.0], [80.5, 55.0], [80.6, 55.0], [80.7, 55.0], [80.8, 55.0], [80.9, 55.0], [81.0, 56.0], [81.1, 56.0], [81.2, 56.0], [81.3, 56.0], [81.4, 56.0], [81.5, 56.0], [81.6, 56.0], [81.7, 56.0], [81.8, 56.0], [81.9, 56.0], [82.0, 56.0], [82.1, 57.0], [82.2, 57.0], [82.3, 57.0], [82.4, 57.0], [82.5, 57.0], [82.6, 57.0], [82.7, 57.0], [82.8, 58.0], [82.9, 58.0], [83.0, 58.0], [83.1, 58.0], [83.2, 58.0], [83.3, 59.0], [83.4, 59.0], [83.5, 59.0], [83.6, 59.0], [83.7, 59.0], [83.8, 59.0], [83.9, 59.0], [84.0, 59.0], [84.1, 59.0], [84.2, 60.0], [84.3, 60.0], [84.4, 60.0], [84.5, 60.0], [84.6, 60.0], [84.7, 60.0], [84.8, 60.0], [84.9, 61.0], [85.0, 61.0], [85.1, 61.0], [85.2, 61.0], [85.3, 61.0], [85.4, 61.0], [85.5, 62.0], [85.6, 62.0], [85.7, 62.0], [85.8, 62.0], [85.9, 62.0], [86.0, 62.0], [86.1, 62.0], [86.2, 63.0], [86.3, 63.0], [86.4, 63.0], [86.5, 63.0], [86.6, 64.0], [86.7, 64.0], [86.8, 64.0], [86.9, 64.0], [87.0, 64.0], [87.1, 65.0], [87.2, 65.0], [87.3, 65.0], [87.4, 65.0], [87.5, 65.0], [87.6, 66.0], [87.7, 66.0], [87.8, 66.0], [87.9, 66.0], [88.0, 67.0], [88.1, 67.0], [88.2, 67.0], [88.3, 67.0], [88.4, 67.0], [88.5, 68.0], [88.6, 68.0], [88.7, 68.0], [88.8, 68.0], [88.9, 69.0], [89.0, 69.0], [89.1, 69.0], [89.2, 69.0], [89.3, 69.0], [89.4, 70.0], [89.5, 70.0], [89.6, 70.0], [89.7, 70.0], [89.8, 70.0], [89.9, 70.0], [90.0, 71.0], [90.1, 71.0], [90.2, 71.0], [90.3, 71.0], [90.4, 71.0], [90.5, 71.0], [90.6, 71.0], [90.7, 72.0], [90.8, 72.0], [90.9, 72.0], [91.0, 73.0], [91.1, 73.0], [91.2, 73.0], [91.3, 74.0], [91.4, 74.0], [91.5, 74.0], [91.6, 74.0], [91.7, 75.0], [91.8, 75.0], [91.9, 75.0], [92.0, 76.0], [92.1, 76.0], [92.2, 76.0], [92.3, 77.0], [92.4, 77.0], [92.5, 78.0], [92.6, 78.0], [92.7, 78.0], [92.8, 80.0], [92.9, 80.0], [93.0, 80.0], [93.1, 80.0], [93.2, 80.0], [93.3, 80.0], [93.4, 81.0], [93.5, 81.0], [93.6, 81.0], [93.7, 82.0], [93.8, 82.0], [93.9, 82.0], [94.0, 82.0], [94.1, 83.0], [94.2, 83.0], [94.3, 83.0], [94.4, 83.0], [94.5, 83.0], [94.6, 84.0], [94.7, 84.0], [94.8, 85.0], [94.9, 85.0], [95.0, 85.0], [95.1, 86.0], [95.2, 86.0], [95.3, 86.0], [95.4, 87.0], [95.5, 87.0], [95.6, 87.0], [95.7, 88.0], [95.8, 89.0], [95.9, 90.0], [96.0, 91.0], [96.1, 92.0], [96.2, 93.0], [96.3, 93.0], [96.4, 94.0], [96.5, 95.0], [96.6, 96.0], [96.7, 96.0], [96.8, 98.0], [96.9, 100.0], [97.0, 100.0], [97.1, 102.0], [97.2, 104.0], [97.3, 106.0], [97.4, 106.0], [97.5, 107.0], [97.6, 108.0], [97.7, 108.0], [97.8, 109.0], [97.9, 111.0], [98.0, 113.0], [98.1, 115.0], [98.2, 115.0], [98.3, 119.0], [98.4, 127.0], [98.5, 130.0], [98.6, 132.0], [98.7, 134.0], [98.8, 137.0], [98.9, 140.0], [99.0, 142.0], [99.1, 144.0], [99.2, 152.0], [99.3, 160.0], [99.4, 174.0], [99.5, 188.0], [99.6, 195.0], [99.7, 216.0], [99.8, 279.0], [99.9, 304.0], [100.0, 648.0]], "isOverall": false, "label": "TDengine JDBC Request", "isController": false}], "supportsControllersDiscrimination": true, "maxX": 100.0, "title": "Response Time Percentiles"}},
        getOptions: function() {
            return {
                series: {
                    points: { show: false }
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendResponseTimePercentiles'
                },
                xaxis: {
                    tickDecimals: 1,
                    axisLabel: "Percentiles",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Percentile value in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : %x.2 percentile was %y ms"
                },
                selection: { mode: "xy" },
            };
        },
        createGraph: function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesResponseTimePercentiles"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotResponseTimesPercentiles"), dataset, options);
            // setup overview
            $.plot($("#overviewResponseTimesPercentiles"), dataset, prepareOverviewOptions(options));
        }
};

/**
 * @param elementId Id of element where we display message
 */
function setEmptyGraph(elementId) {
    $(function() {
        $(elementId).text("No graph series with filter="+seriesFilter);
    });
}

// Response times percentiles
function refreshResponseTimePercentiles() {
    var infos = responseTimePercentilesInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyResponseTimePercentiles");
        return;
    }
    if (isGraph($("#flotResponseTimesPercentiles"))){
        infos.createGraph();
    } else {
        var choiceContainer = $("#choicesResponseTimePercentiles");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotResponseTimesPercentiles", "#overviewResponseTimesPercentiles");
        $('#bodyResponseTimePercentiles .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
}

var responseTimeDistributionInfos = {
        data: {"result": {"minY": 1.0, "minX": 0.0, "maxY": 2058.0, "series": [{"data": [[500.0, 1.0], [700.0, 6.0], [800.0, 1.0], [900.0, 5.0], [1000.0, 2.0], [1100.0, 5.0], [1200.0, 31.0], [1300.0, 60.0], [1400.0, 48.0], [1500.0, 30.0], [1600.0, 22.0], [1700.0, 9.0], [1800.0, 9.0], [1900.0, 4.0], [2000.0, 2.0], [2100.0, 1.0], [2200.0, 1.0], [2300.0, 5.0], [2400.0, 3.0], [2700.0, 2.0], [2800.0, 3.0], [2900.0, 5.0], [3000.0, 17.0], [3100.0, 17.0], [3300.0, 22.0], [3200.0, 19.0], [3400.0, 24.0], [3500.0, 15.0], [3600.0, 19.0], [3700.0, 12.0], [3800.0, 13.0], [3900.0, 7.0], [4000.0, 7.0], [4300.0, 4.0], [4100.0, 6.0], [4200.0, 5.0], [4400.0, 3.0], [4600.0, 11.0], [4500.0, 3.0], [4700.0, 7.0], [4800.0, 6.0], [4900.0, 16.0], [5100.0, 10.0], [5000.0, 9.0], [5200.0, 13.0], [5300.0, 19.0], [5400.0, 12.0], [5600.0, 18.0], [5500.0, 13.0], [5700.0, 30.0], [5800.0, 19.0], [5900.0, 19.0], [6000.0, 8.0], [6100.0, 9.0], [6200.0, 21.0], [6300.0, 14.0], [6600.0, 11.0], [6400.0, 13.0], [6500.0, 12.0], [6900.0, 4.0], [6700.0, 13.0], [6800.0, 11.0], [7100.0, 5.0], [7000.0, 6.0], [7300.0, 7.0], [7400.0, 6.0], [7200.0, 9.0], [7600.0, 10.0], [7500.0, 6.0], [7900.0, 9.0], [7800.0, 7.0], [7700.0, 6.0], [8100.0, 8.0], [8000.0, 7.0], [8300.0, 9.0], [8400.0, 7.0], [8200.0, 8.0], [8500.0, 15.0], [8600.0, 7.0], [8700.0, 7.0], [8800.0, 6.0], [9000.0, 10.0], [9100.0, 7.0], [9200.0, 9.0], [8900.0, 6.0], [9500.0, 8.0], [9400.0, 7.0], [9600.0, 9.0], [9300.0, 4.0], [9700.0, 4.0], [9900.0, 10.0], [9800.0, 4.0], [10000.0, 3.0], [10100.0, 4.0], [10200.0, 6.0], [10600.0, 11.0], [10300.0, 9.0], [10700.0, 14.0], [10500.0, 9.0], [10400.0, 7.0], [11000.0, 14.0], [10800.0, 7.0], [11200.0, 18.0], [10900.0, 10.0], [11100.0, 6.0], [11400.0, 13.0], [11500.0, 16.0], [11600.0, 11.0], [11300.0, 9.0], [11700.0, 11.0], [11900.0, 12.0], [12200.0, 12.0], [11800.0, 13.0], [12100.0, 13.0], [12000.0, 13.0], [12400.0, 10.0], [12700.0, 16.0], [12500.0, 12.0], [12600.0, 7.0], [12300.0, 17.0], [13200.0, 18.0], [13100.0, 14.0], [13300.0, 12.0], [13000.0, 16.0], [12900.0, 19.0], [12800.0, 18.0], [13400.0, 18.0], [13700.0, 13.0], [13500.0, 7.0], [13800.0, 5.0], [13600.0, 10.0], [14200.0, 7.0], [13900.0, 6.0], [14300.0, 17.0], [14100.0, 15.0], [14000.0, 4.0], [14400.0, 17.0], [14700.0, 17.0], [14600.0, 14.0], [14500.0, 10.0], [14800.0, 14.0], [15200.0, 11.0], [15100.0, 17.0], [14900.0, 16.0], [15300.0, 16.0], [15000.0, 7.0], [15800.0, 21.0], [15600.0, 16.0], [15700.0, 21.0], [15400.0, 14.0], [15500.0, 15.0], [16100.0, 17.0], [15900.0, 23.0], [16000.0, 27.0], [16300.0, 16.0], [16200.0, 16.0], [17400.0, 14.0], [17000.0, 12.0], [16600.0, 16.0], [16800.0, 13.0], [16400.0, 20.0], [17200.0, 16.0], [17600.0, 6.0], [17800.0, 14.0], [18000.0, 12.0], [18200.0, 9.0], [18400.0, 9.0], [19200.0, 4.0], [18600.0, 10.0], [18800.0, 11.0], [19400.0, 5.0], [19000.0, 6.0], [19800.0, 1.0], [19600.0, 2.0], [20200.0, 5.0], [20400.0, 3.0], [20000.0, 3.0], [21400.0, 1.0], [21200.0, 2.0], [20600.0, 2.0], [21000.0, 3.0], [20800.0, 1.0], [21800.0, 1.0], [16500.0, 15.0], [17100.0, 16.0], [16900.0, 18.0], [16700.0, 16.0], [17300.0, 13.0], [17900.0, 18.0], [17500.0, 12.0], [17700.0, 7.0], [18100.0, 18.0], [18300.0, 8.0], [18500.0, 11.0], [18700.0, 13.0], [18900.0, 2.0], [19100.0, 5.0], [19300.0, 7.0], [19500.0, 4.0], [19900.0, 6.0], [20100.0, 2.0], [19700.0, 4.0], [20300.0, 1.0], [20500.0, 3.0], [20900.0, 1.0], [20700.0, 1.0], [21500.0, 1.0], [21100.0, 2.0], [21700.0, 1.0], [21900.0, 1.0], [22100.0, 1.0]], "isOverall": false, "label": "MySQL JDBC Request", "isController": false}, {"data": [[0.0, 2058.0], [600.0, 2.0], [300.0, 1.0], [100.0, 58.0], [200.0, 5.0]], "isOverall": false, "label": "TDengine JDBC Request", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 100, "maxX": 22100.0, "title": "Response Time Distribution"}},
        getOptions: function() {
            var granularity = this.data.result.granularity;
            return {
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendResponseTimeDistribution'
                },
                xaxis:{
                    axisLabel: "Response times in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of responses",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                bars : {
                    show: true,
                    barWidth: this.data.result.granularity
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: function(label, xval, yval, flotItem){
                        return yval + " responses for " + label + " were between " + xval + " and " + (xval + granularity) + " ms";
                    }
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotResponseTimeDistribution"), prepareData(data.result.series, $("#choicesResponseTimeDistribution")), options);
        }

};

// Response time distribution
function refreshResponseTimeDistribution() {
    var infos = responseTimeDistributionInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyResponseTimeDistribution");
        return;
    }
    if (isGraph($("#flotResponseTimeDistribution"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesResponseTimeDistribution");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        $('#footerResponseTimeDistribution .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};


var syntheticResponseTimeDistributionInfos = {
        data: {"result": {"minY": 162.0, "minX": 0.0, "ticks": [[0, "Requests having \nresponse time <= 500ms"], [1, "Requests having \nresponse time > 500ms and <= 1,500ms"], [2, "Requests having \nresponse time > 1,500ms"], [3, "Requests in error"]], "maxY": 2122.0, "series": [{"data": [[0.0, 2122.0]], "color": "#9ACD32", "isOverall": false, "label": "Requests having \nresponse time <= 500ms", "isController": false}, {"data": [[1.0, 162.0]], "color": "yellow", "isOverall": false, "label": "Requests having \nresponse time > 500ms and <= 1,500ms", "isController": false}, {"data": [[2.0, 2064.0]], "color": "orange", "isOverall": false, "label": "Requests having \nresponse time > 1,500ms", "isController": false}, {"data": [], "color": "#FF6347", "isOverall": false, "label": "Requests in error", "isController": false}], "supportsControllersDiscrimination": false, "maxX": 2.0, "title": "Synthetic Response Times Distribution"}},
        getOptions: function() {
            return {
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendSyntheticResponseTimeDistribution'
                },
                xaxis:{
                    axisLabel: "Response times ranges",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                    tickLength:0,
                    min:-0.5,
                    max:3.5
                },
                yaxis: {
                    axisLabel: "Number of responses",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                bars : {
                    show: true,
                    align: "center",
                    barWidth: 0.25,
                    fill:.75
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: function(label, xval, yval, flotItem){
                        return yval + " " + label;
                    }
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var options = this.getOptions();
            prepareOptions(options, data);
            options.xaxis.ticks = data.result.ticks;
            $.plot($("#flotSyntheticResponseTimeDistribution"), prepareData(data.result.series, $("#choicesSyntheticResponseTimeDistribution")), options);
        }

};

// Response time distribution
function refreshSyntheticResponseTimeDistribution() {
    var infos = syntheticResponseTimeDistributionInfos;
    prepareSeries(infos.data, true);
    if (isGraph($("#flotSyntheticResponseTimeDistribution"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesSyntheticResponseTimeDistribution");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        $('#footerSyntheticResponseTimeDistribution .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var activeThreadsOverTimeInfos = {
        data: {"result": {"minY": 9.545454545454541, "minX": 1.75638738E12, "maxY": 100.0, "series": [{"data": [[1.75638756E12, 52.87585034013607], [1.75638774E12, 100.0], [1.75638768E12, 86.37142857142854], [1.75638738E12, 9.545454545454541], [1.7563878E12, 69.11538461538461], [1.7563875E12, 35.56606606606605], [1.75638744E12, 17.81415929203539], [1.75638762E12, 69.52960000000002]], "isOverall": false, "label": "jp@gc - Stepping Thread Group", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.7563878E12, "title": "Active Threads Over Time"}},
        getOptions: function() {
            return {
                series: {
                    stack: true,
                    lines: {
                        show: true,
                        fill: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of active threads",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: {
                    noColumns: 6,
                    show: true,
                    container: '#legendActiveThreadsOverTime'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                selection: {
                    mode: 'xy'
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : At %x there were %y active threads"
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesActiveThreadsOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotActiveThreadsOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewActiveThreadsOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Active Threads Over Time
function refreshActiveThreadsOverTime(fixTimestamps) {
    var infos = activeThreadsOverTimeInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotActiveThreadsOverTime"))) {
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesActiveThreadsOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotActiveThreadsOverTime", "#overviewActiveThreadsOverTime");
        $('#footerActiveThreadsOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var timeVsThreadsInfos = {
        data: {"result": {"minY": 26.0, "minX": 1.0, "maxY": 21020.0, "series": [{"data": [[2.0, 1602.0], [3.0, 1254.6666666666667], [4.0, 1194.5], [5.0, 1396.5], [6.0, 1049.4], [7.0, 1296.3333333333333], [8.0, 1142.8], [9.0, 2334.666666666667], [10.0, 1459.8349514563117], [11.0, 2327.0], [12.0, 4507.2], [13.0, 6302.0], [14.0, 5094.0], [15.0, 3802.75], [16.0, 4896.375000000001], [17.0, 4730.333333333334], [18.0, 6690.0], [19.0, 5970.0], [20.0, 3557.552325581395], [21.0, 5404.0], [22.0, 4712.8], [23.0, 5780.0], [24.0, 11256.0], [25.0, 6649.833333333333], [26.0, 4898.2], [27.0, 8089.0], [28.0, 6471.8], [29.0, 6237.666666666666], [30.0, 5427.161676646705], [31.0, 8588.5], [33.0, 8105.5], [32.0, 10814.0], [34.0, 6873.4], [35.0, 6955.2], [36.0, 7956.333333333334], [37.0, 7796.333333333333], [39.0, 8000.25], [38.0, 11055.0], [40.0, 6849.325966850827], [41.0, 8118.0], [42.0, 8787.0], [43.0, 8181.333333333334], [44.0, 9059.0], [45.0, 8191.25], [46.0, 8642.333333333334], [47.0, 9725.0], [48.0, 8636.6], [49.0, 9148.0], [50.0, 9089.674698795183], [51.0, 11361.5], [52.0, 11886.5], [53.0, 10636.0], [55.0, 11032.0], [54.0, 12973.0], [56.0, 11024.5], [57.0, 13422.5], [58.0, 12102.0], [59.0, 12625.666666666666], [60.0, 12025.616883116882], [61.0, 11232.5], [62.0, 11762.333333333334], [63.0, 13928.0], [65.0, 12066.2], [66.0, 12550.75], [67.0, 14245.333333333334], [64.0, 15341.0], [68.0, 13510.0], [69.0, 12982.5], [70.0, 12377.517647058829], [71.0, 13548.75], [73.0, 14748.857142857141], [74.0, 14341.75], [75.0, 15006.25], [72.0, 16967.0], [76.0, 16188.0], [77.0, 16441.75], [78.0, 16995.0], [79.0, 14844.333333333334], [80.0, 14946.554216867471], [81.0, 15373.0], [82.0, 15395.25], [83.0, 14638.166666666666], [84.0, 14883.6], [85.0, 14771.75], [86.0, 16431.0], [87.0, 19160.0], [88.0, 18073.625], [89.0, 16513.5], [90.0, 15823.486033519552], [91.0, 18841.0], [92.0, 19185.833333333332], [93.0, 16919.714285714286], [94.0, 18365.117647058825], [95.0, 15573.5], [96.0, 16918.5], [97.0, 16692.25], [98.0, 18090.25], [99.0, 21020.0], [100.0, 17668.44705882353], [1.0, 1598.0]], "isOverall": false, "label": "MySQL JDBC Request", "isController": false}, {"data": [[57.615557553956826, 10516.134892086337]], "isOverall": false, "label": "MySQL JDBC Request-Aggregated", "isController": false}, {"data": [[4.0, 533.3333333333334], [5.0, 54.0], [6.0, 35.0], [7.0, 33.0], [8.0, 39.5], [9.0, 41.666666666666664], [10.0, 34.49756097560973], [11.0, 52.0], [12.0, 44.5], [13.0, 82.0], [14.0, 52.0], [15.0, 51.0], [16.0, 59.0], [17.0, 49.0], [19.0, 77.5], [20.0, 45.081871345029285], [21.0, 30.0], [22.0, 35.25], [23.0, 37.0], [24.0, 76.5], [25.0, 34.5], [26.0, 34.6], [27.0, 43.666666666666664], [28.0, 40.666666666666664], [29.0, 68.0], [30.0, 45.51204819277109], [31.0, 42.0], [33.0, 39.0], [34.0, 64.0], [35.0, 39.75], [36.0, 52.0], [37.0, 75.0], [38.0, 39.0], [39.0, 48.0], [40.0, 41.15000000000003], [41.0, 26.666666666666668], [42.0, 31.0], [43.0, 31.0], [44.0, 26.0], [45.0, 33.5], [46.0, 58.33333333333333], [47.0, 36.0], [48.0, 37.333333333333336], [49.0, 37.333333333333336], [50.0, 48.97560975609759], [51.0, 72.5], [52.0, 37.0], [53.0, 43.5], [55.0, 120.0], [56.0, 140.0], [57.0, 160.0], [58.0, 108.0], [59.0, 57.5], [60.0, 54.1045751633987], [61.0, 41.666666666666664], [62.0, 33.0], [63.0, 67.66666666666667], [65.0, 42.5], [66.0, 43.333333333333336], [67.0, 38.5], [68.0, 45.0], [69.0, 45.0], [70.0, 43.13017751479293], [71.0, 35.666666666666664], [73.0, 56.2], [74.0, 90.0], [75.0, 54.5], [76.0, 131.0], [78.0, 107.0], [79.0, 49.0], [77.0, 34.5], [80.0, 50.560240963855414], [81.0, 46.0], [82.0, 38.666666666666664], [83.0, 38.4], [84.0, 36.0], [85.0, 38.333333333333336], [86.0, 33.0], [87.0, 43.0], [88.0, 33.714285714285715], [89.0, 29.0], [90.0, 42.30337078651682], [91.0, 48.66666666666667], [92.0, 38.5], [93.0, 37.666666666666664], [94.0, 43.64705882352941], [95.0, 51.666666666666664], [96.0, 35.0], [97.0, 44.57142857142857], [98.0, 38.333333333333336], [100.0, 45.8082595870206]], "isOverall": false, "label": "TDengine JDBC Request", "isController": false}, {"data": [[57.954331450094045, 45.92890772128064]], "isOverall": false, "label": "TDengine JDBC Request-Aggregated", "isController": false}], "supportsControllersDiscrimination": true, "maxX": 100.0, "title": "Time VS Threads"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    axisLabel: "Number of active threads",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Average response times in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: { noColumns: 2,show: true, container: '#legendTimeVsThreads' },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s: At %x.2 active threads, Average response time was %y.2 ms"
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesTimeVsThreads"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotTimesVsThreads"), dataset, options);
            // setup overview
            $.plot($("#overviewTimesVsThreads"), dataset, prepareOverviewOptions(options));
        }
};

// Time vs threads
function refreshTimeVsThreads(){
    var infos = timeVsThreadsInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyTimeVsThreads");
        return;
    }
    if(isGraph($("#flotTimesVsThreads"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesTimeVsThreads");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotTimesVsThreads", "#overviewTimesVsThreads");
        $('#footerTimeVsThreads .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var bytesThroughputOverTimeInfos = {
        data : {"result": {"minY": 0.0, "minX": 1.75638738E12, "maxY": 1361.65, "series": [{"data": [[1.75638756E12, 1180.9], [1.75638774E12, 1305.4166666666667], [1.75638768E12, 1335.5666666666666], [1.75638738E12, 486.01666666666665], [1.7563878E12, 467.45], [1.7563875E12, 1337.55], [1.75638744E12, 1361.65], [1.75638762E12, 1255.1833333333334]], "isOverall": false, "label": "Bytes received per second", "isController": false}, {"data": [[1.75638756E12, 0.0], [1.75638774E12, 0.0], [1.75638768E12, 0.0], [1.75638738E12, 0.0], [1.7563878E12, 0.0], [1.7563875E12, 0.0], [1.75638744E12, 0.0], [1.75638762E12, 0.0]], "isOverall": false, "label": "Bytes sent per second", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.7563878E12, "title": "Bytes Throughput Over Time"}},
        getOptions : function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity) ,
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Bytes / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendBytesThroughputOverTime'
                },
                selection: {
                    mode: "xy"
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s at %x was %y"
                }
            };
        },
        createGraph : function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesBytesThroughputOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotBytesThroughputOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewBytesThroughputOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Bytes throughput Over Time
function refreshBytesThroughputOverTime(fixTimestamps) {
    var infos = bytesThroughputOverTimeInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotBytesThroughputOverTime"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesBytesThroughputOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotBytesThroughputOverTime", "#overviewBytesThroughputOverTime");
        $('#footerBytesThroughputOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
}

var responseTimesOverTimeInfos = {
        data: {"result": {"minY": 42.433628318584105, "minX": 1.75638738E12, "maxY": 17571.996923076927, "series": [{"data": [[1.75638756E12, 9773.911564625847], [1.75638774E12, 17571.996923076927], [1.75638768E12, 15385.054216867473], [1.75638738E12, 1305.859504132231], [1.7563878E12, 15019.281437125745], [1.7563875E12, 6215.2852852852875], [1.75638744E12, 2957.935103244839], [1.75638762E12, 12642.038338658147]], "isOverall": false, "label": "MySQL JDBC Request", "isController": false}, {"data": [[1.75638756E12, 54.39115646258504], [1.75638774E12, 46.06769230769225], [1.75638768E12, 45.924924924924944], [1.75638738E12, 46.68595041322313], [1.7563878E12, 44.6268656716418], [1.7563875E12, 43.213213213213265], [1.75638744E12, 42.433628318584105], [1.75638762E12, 44.49679487179484]], "isOverall": false, "label": "TDengine JDBC Request", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.7563878E12, "title": "Response Time Over Time"}},
        getOptions: function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Average response time in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendResponseTimesOverTime'
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : at %x Average response time was %y ms"
                }
            };
        },
        createGraph: function() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesResponseTimesOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotResponseTimesOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewResponseTimesOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Response Times Over Time
function refreshResponseTimeOverTime(fixTimestamps) {
    var infos = responseTimesOverTimeInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyResponseTimeOverTime");
        return;
    }
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotResponseTimesOverTime"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesResponseTimesOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotResponseTimesOverTime", "#overviewResponseTimesOverTime");
        $('#footerResponseTimesOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var latenciesOverTimeInfos = {
        data: {"result": {"minY": 36.75811209439528, "minX": 1.75638738E12, "maxY": 17571.895384615396, "series": [{"data": [[1.75638756E12, 9773.812925170068], [1.75638774E12, 17571.895384615396], [1.75638768E12, 15384.969879518074], [1.75638738E12, 1305.495867768595], [1.7563878E12, 15019.113772455088], [1.7563875E12, 6215.066066066069], [1.75638744E12, 2957.7197640117975], [1.75638762E12, 12641.92651757188]], "isOverall": false, "label": "MySQL JDBC Request", "isController": false}, {"data": [[1.75638756E12, 47.09183673469385], [1.75638774E12, 40.51384615384613], [1.75638768E12, 40.9069069069069], [1.75638738E12, 41.94214876033058], [1.7563878E12, 39.92537313432836], [1.7563875E12, 37.93393393393395], [1.75638744E12, 36.75811209439528], [1.75638762E12, 39.59294871794871]], "isOverall": false, "label": "TDengine JDBC Request", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.7563878E12, "title": "Latencies Over Time"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Average response latencies in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendLatenciesOverTime'
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : at %x Average latency was %y ms"
                }
            };
        },
        createGraph: function () {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesLatenciesOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotLatenciesOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewLatenciesOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Latencies Over Time
function refreshLatenciesOverTime(fixTimestamps) {
    var infos = latenciesOverTimeInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyLatenciesOverTime");
        return;
    }
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotLatenciesOverTime"))) {
        infos.createGraph();
    }else {
        var choiceContainer = $("#choicesLatenciesOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotLatenciesOverTime", "#overviewLatenciesOverTime");
        $('#footerLatenciesOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var connectTimeOverTimeInfos = {
        data: {"result": {"minY": 0.02994011976047905, "minX": 1.75638738E12, "maxY": 19.054216867469897, "series": [{"data": [[1.75638756E12, 16.823129251700678], [1.75638774E12, 8.003076923076918], [1.75638768E12, 19.054216867469897], [1.75638738E12, 15.644628099173548], [1.7563878E12, 0.02994011976047905], [1.7563875E12, 8.48948948948949], [1.75638744E12, 9.333333333333336], [1.75638762E12, 7.619808306709271]], "isOverall": false, "label": "MySQL JDBC Request", "isController": false}, {"data": [[1.75638756E12, 5.391156462585032], [1.75638774E12, 4.150769230769236], [1.75638768E12, 4.939939939939937], [1.75638738E12, 14.446280991735533], [1.7563878E12, 3.268656716417909], [1.7563875E12, 1.816816816816816], [1.75638744E12, 2.4690265486725647], [1.75638762E12, 3.5256410256410264]], "isOverall": false, "label": "TDengine JDBC Request", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.7563878E12, "title": "Connect Time Over Time"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getConnectTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Average Connect Time in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendConnectTimeOverTime'
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : at %x Average connect time was %y ms"
                }
            };
        },
        createGraph: function () {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesConnectTimeOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotConnectTimeOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewConnectTimeOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Connect Time Over Time
function refreshConnectTimeOverTime(fixTimestamps) {
    var infos = connectTimeOverTimeInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyConnectTimeOverTime");
        return;
    }
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotConnectTimeOverTime"))) {
        infos.createGraph();
    }else {
        var choiceContainer = $("#choicesConnectTimeOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotConnectTimeOverTime", "#overviewConnectTimeOverTime");
        $('#footerConnectTimeOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var responseTimePercentilesOverTimeInfos = {
        data: {"result": {"minY": 23.0, "minX": 1.75638738E12, "maxY": 22106.0, "series": [{"data": [[1.75638756E12, 14264.0], [1.75638774E12, 21701.0], [1.75638768E12, 18107.0], [1.75638738E12, 1639.0], [1.7563878E12, 22106.0], [1.7563875E12, 9524.0], [1.75638744E12, 5703.0], [1.75638762E12, 16121.0]], "isOverall": false, "label": "Max", "isController": false}, {"data": [[1.75638756E12, 11577.7], [1.75638774E12, 18625.4], [1.75638768E12, 16287.4], [1.75638738E12, 1443.7], [1.7563878E12, 19908.5], [1.7563875E12, 6837.000000000001], [1.75638744E12, 3811.1], [1.75638762E12, 13633.6]], "isOverall": false, "label": "90th percentile", "isController": false}, {"data": [[1.75638756E12, 13335.54], [1.75638774E12, 20496.68], [1.75638768E12, 17493.14], [1.75638738E12, 1616.57], [1.7563878E12, 21896.7], [1.7563875E12, 8882.970000000008], [1.75638744E12, 5217.7300000000005], [1.75638762E12, 15692.02]], "isOverall": false, "label": "99th percentile", "isController": false}, {"data": [[1.75638756E12, 12289.05], [1.75638774E12, 19314.35], [1.75638768E12, 16826.6], [1.75638738E12, 1499.85], [1.7563878E12, 20736.5], [1.7563875E12, 7835.299999999999], [1.75638744E12, 4211.1], [1.75638762E12, 14609.499999999993]], "isOverall": false, "label": "95th percentile", "isController": false}, {"data": [[1.75638756E12, 25.0], [1.75638774E12, 24.0], [1.75638768E12, 24.0], [1.75638738E12, 23.0], [1.7563878E12, 28.0], [1.7563875E12, 25.0], [1.75638744E12, 25.0], [1.75638762E12, 24.0]], "isOverall": false, "label": "Min", "isController": false}, {"data": [[1.75638756E12, 2979.0], [1.75638774E12, 7151.5], [1.75638768E12, 286.0], [1.75638738E12, 648.0], [1.7563878E12, 12711.5], [1.7563875E12, 2322.5], [1.75638744E12, 725.5], [1.75638762E12, 9078.0]], "isOverall": false, "label": "Median", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.7563878E12, "title": "Response Time Percentiles Over Time (successful requests only)"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true,
                        fill: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Response Time in ms",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: '#legendResponseTimePercentilesOverTime'
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s : at %x Response time was %y ms"
                }
            };
        },
        createGraph: function () {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesResponseTimePercentilesOverTime"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotResponseTimePercentilesOverTime"), dataset, options);
            // setup overview
            $.plot($("#overviewResponseTimePercentilesOverTime"), dataset, prepareOverviewOptions(options));
        }
};

// Response Time Percentiles Over Time
function refreshResponseTimePercentilesOverTime(fixTimestamps) {
    var infos = responseTimePercentilesOverTimeInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotResponseTimePercentilesOverTime"))) {
        infos.createGraph();
    }else {
        var choiceContainer = $("#choicesResponseTimePercentilesOverTime");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotResponseTimePercentilesOverTime", "#overviewResponseTimePercentilesOverTime");
        $('#footerResponseTimePercentilesOverTime .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};


var responseTimeVsRequestInfos = {
    data: {"result": {"minY": 80.5, "minX": 1.0, "maxY": 14440.0, "series": [{"data": [[2.0, 960.5], [34.0, 10341.5], [3.0, 5489.0], [4.0, 1674.0], [5.0, 4785.0], [6.0, 611.0], [7.0, 1907.0], [8.0, 1829.0], [9.0, 2206.0], [10.0, 1179.5], [11.0, 3185.5], [12.0, 1237.0], [13.0, 1254.0], [14.0, 909.5], [15.0, 113.0], [16.0, 1552.0], [1.0, 14440.0], [17.0, 140.5], [18.0, 100.0], [19.0, 80.5], [20.0, 111.5], [21.0, 2699.5], [22.0, 2908.5], [23.0, 9417.0], [24.0, 5376.0]], "isOverall": false, "label": "Successes", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 1000, "maxX": 34.0, "title": "Response Time Vs Request"}},
    getOptions: function() {
        return {
            series: {
                lines: {
                    show: false
                },
                points: {
                    show: true
                }
            },
            xaxis: {
                axisLabel: "Global number of requests per second",
                axisLabelUseCanvas: true,
                axisLabelFontSizePixels: 12,
                axisLabelFontFamily: 'Verdana, Arial',
                axisLabelPadding: 20,
            },
            yaxis: {
                axisLabel: "Median Response Time in ms",
                axisLabelUseCanvas: true,
                axisLabelFontSizePixels: 12,
                axisLabelFontFamily: 'Verdana, Arial',
                axisLabelPadding: 20,
            },
            legend: {
                noColumns: 2,
                show: true,
                container: '#legendResponseTimeVsRequest'
            },
            selection: {
                mode: 'xy'
            },
            grid: {
                hoverable: true // IMPORTANT! this is needed for tooltip to work
            },
            tooltip: true,
            tooltipOpts: {
                content: "%s : Median response time at %x req/s was %y ms"
            },
            colors: ["#9ACD32", "#FF6347"]
        };
    },
    createGraph: function () {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesResponseTimeVsRequest"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotResponseTimeVsRequest"), dataset, options);
        // setup overview
        $.plot($("#overviewResponseTimeVsRequest"), dataset, prepareOverviewOptions(options));

    }
};

// Response Time vs Request
function refreshResponseTimeVsRequest() {
    var infos = responseTimeVsRequestInfos;
    prepareSeries(infos.data);
    if (isGraph($("#flotResponseTimeVsRequest"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesResponseTimeVsRequest");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotResponseTimeVsRequest", "#overviewResponseTimeVsRequest");
        $('#footerResponseRimeVsRequest .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};


var latenciesVsRequestInfos = {
    data: {"result": {"minY": 78.0, "minX": 1.0, "maxY": 14440.0, "series": [{"data": [[2.0, 958.5], [34.0, 10341.0], [3.0, 5489.0], [4.0, 1668.5], [5.0, 4781.5], [6.0, 608.5], [7.0, 1889.5], [8.0, 1829.0], [9.0, 2205.5], [10.0, 1179.5], [11.0, 3185.0], [12.0, 1236.5], [13.0, 1254.0], [14.0, 909.0], [15.0, 103.0], [16.0, 1552.0], [1.0, 14440.0], [17.0, 112.5], [18.0, 95.0], [19.0, 78.0], [20.0, 104.0], [21.0, 2695.0], [22.0, 2904.5], [23.0, 9417.0], [24.0, 5374.5]], "isOverall": false, "label": "Successes", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 1000, "maxX": 34.0, "title": "Latencies Vs Request"}},
    getOptions: function() {
        return{
            series: {
                lines: {
                    show: false
                },
                points: {
                    show: true
                }
            },
            xaxis: {
                axisLabel: "Global number of requests per second",
                axisLabelUseCanvas: true,
                axisLabelFontSizePixels: 12,
                axisLabelFontFamily: 'Verdana, Arial',
                axisLabelPadding: 20,
            },
            yaxis: {
                axisLabel: "Median Latency in ms",
                axisLabelUseCanvas: true,
                axisLabelFontSizePixels: 12,
                axisLabelFontFamily: 'Verdana, Arial',
                axisLabelPadding: 20,
            },
            legend: { noColumns: 2,show: true, container: '#legendLatencyVsRequest' },
            selection: {
                mode: 'xy'
            },
            grid: {
                hoverable: true // IMPORTANT! this is needed for tooltip to work
            },
            tooltip: true,
            tooltipOpts: {
                content: "%s : Median Latency time at %x req/s was %y ms"
            },
            colors: ["#9ACD32", "#FF6347"]
        };
    },
    createGraph: function () {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesLatencyVsRequest"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotLatenciesVsRequest"), dataset, options);
        // setup overview
        $.plot($("#overviewLatenciesVsRequest"), dataset, prepareOverviewOptions(options));
    }
};

// Latencies vs Request
function refreshLatenciesVsRequest() {
        var infos = latenciesVsRequestInfos;
        prepareSeries(infos.data);
        if(isGraph($("#flotLatenciesVsRequest"))){
            infos.createGraph();
        }else{
            var choiceContainer = $("#choicesLatencyVsRequest");
            createLegend(choiceContainer, infos);
            infos.createGraph();
            setGraphZoomable("#flotLatenciesVsRequest", "#overviewLatenciesVsRequest");
            $('#footerLatenciesVsRequest .legendColorBox > div').each(function(i){
                $(this).clone().prependTo(choiceContainer.find("li").eq(i));
            });
        }
};

var hitsPerSecondInfos = {
        data: {"result": {"minY": 2.2333333333333334, "minX": 1.75638738E12, "maxY": 11.633333333333333, "series": [{"data": [[1.75638756E12, 10.133333333333333], [1.75638774E12, 10.85], [1.75638768E12, 11.4], [1.75638738E12, 4.2], [1.7563878E12, 2.2333333333333334], [1.7563875E12, 11.266666666666667], [1.75638744E12, 11.633333333333333], [1.75638762E12, 10.75]], "isOverall": false, "label": "hitsPerSecond", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.7563878E12, "title": "Hits Per Second"}},
        getOptions: function() {
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of hits / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: "#legendHitsPerSecond"
                },
                selection: {
                    mode : 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s at %x was %y.2 hits/sec"
                }
            };
        },
        createGraph: function createGraph() {
            var data = this.data;
            var dataset = prepareData(data.result.series, $("#choicesHitsPerSecond"));
            var options = this.getOptions();
            prepareOptions(options, data);
            $.plot($("#flotHitsPerSecond"), dataset, options);
            // setup overview
            $.plot($("#overviewHitsPerSecond"), dataset, prepareOverviewOptions(options));
        }
};

// Hits per second
function refreshHitsPerSecond(fixTimestamps) {
    var infos = hitsPerSecondInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if (isGraph($("#flotHitsPerSecond"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesHitsPerSecond");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotHitsPerSecond", "#overviewHitsPerSecond");
        $('#footerHitsPerSecond .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
}

var codesPerSecondInfos = {
        data: {"result": {"minY": 3.9, "minX": 1.75638738E12, "maxY": 11.3, "series": [{"data": [[1.75638756E12, 9.8], [1.75638774E12, 10.833333333333334], [1.75638768E12, 11.083333333333334], [1.75638738E12, 4.033333333333333], [1.7563878E12, 3.9], [1.7563875E12, 11.1], [1.75638744E12, 11.3], [1.75638762E12, 10.416666666666666]], "isOverall": false, "label": "200", "isController": false}], "supportsControllersDiscrimination": false, "granularity": 60000, "maxX": 1.7563878E12, "title": "Codes Per Second"}},
        getOptions: function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of responses / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: "#legendCodesPerSecond"
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "Number of Response Codes %s at %x was %y.2 responses / sec"
                }
            };
        },
    createGraph: function() {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesCodesPerSecond"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotCodesPerSecond"), dataset, options);
        // setup overview
        $.plot($("#overviewCodesPerSecond"), dataset, prepareOverviewOptions(options));
    }
};

// Codes per second
function refreshCodesPerSecond(fixTimestamps) {
    var infos = codesPerSecondInfos;
    prepareSeries(infos.data);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotCodesPerSecond"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesCodesPerSecond");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotCodesPerSecond", "#overviewCodesPerSecond");
        $('#footerCodesPerSecond .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var transactionsPerSecondInfos = {
        data: {"result": {"minY": 1.1166666666666667, "minX": 1.75638738E12, "maxY": 5.65, "series": [{"data": [[1.75638756E12, 4.9], [1.75638774E12, 5.416666666666667], [1.75638768E12, 5.55], [1.75638738E12, 2.0166666666666666], [1.7563878E12, 1.1166666666666667], [1.7563875E12, 5.55], [1.75638744E12, 5.65], [1.75638762E12, 5.2]], "isOverall": false, "label": "TDengine JDBC Request-success", "isController": false}, {"data": [[1.75638756E12, 4.9], [1.75638774E12, 5.416666666666667], [1.75638768E12, 5.533333333333333], [1.75638738E12, 2.0166666666666666], [1.7563878E12, 2.783333333333333], [1.7563875E12, 5.55], [1.75638744E12, 5.65], [1.75638762E12, 5.216666666666667]], "isOverall": false, "label": "MySQL JDBC Request-success", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.7563878E12, "title": "Transactions Per Second"}},
        getOptions: function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of transactions / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: "#legendTransactionsPerSecond"
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s at %x was %y transactions / sec"
                }
            };
        },
    createGraph: function () {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesTransactionsPerSecond"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotTransactionsPerSecond"), dataset, options);
        // setup overview
        $.plot($("#overviewTransactionsPerSecond"), dataset, prepareOverviewOptions(options));
    }
};

// Transactions per second
function refreshTransactionsPerSecond(fixTimestamps) {
    var infos = transactionsPerSecondInfos;
    prepareSeries(infos.data);
    if(infos.data.result.series.length == 0) {
        setEmptyGraph("#bodyTransactionsPerSecond");
        return;
    }
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotTransactionsPerSecond"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesTransactionsPerSecond");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotTransactionsPerSecond", "#overviewTransactionsPerSecond");
        $('#footerTransactionsPerSecond .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

var totalTPSInfos = {
        data: {"result": {"minY": 3.9, "minX": 1.75638738E12, "maxY": 11.3, "series": [{"data": [[1.75638756E12, 9.8], [1.75638774E12, 10.833333333333334], [1.75638768E12, 11.083333333333334], [1.75638738E12, 4.033333333333333], [1.7563878E12, 3.9], [1.7563875E12, 11.1], [1.75638744E12, 11.3], [1.75638762E12, 10.416666666666666]], "isOverall": false, "label": "Transaction-success", "isController": false}, {"data": [], "isOverall": false, "label": "Transaction-failure", "isController": false}], "supportsControllersDiscrimination": true, "granularity": 60000, "maxX": 1.7563878E12, "title": "Total Transactions Per Second"}},
        getOptions: function(){
            return {
                series: {
                    lines: {
                        show: true
                    },
                    points: {
                        show: true
                    }
                },
                xaxis: {
                    mode: "time",
                    timeformat: getTimeFormat(this.data.result.granularity),
                    axisLabel: getElapsedTimeLabel(this.data.result.granularity),
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20,
                },
                yaxis: {
                    axisLabel: "Number of transactions / sec",
                    axisLabelUseCanvas: true,
                    axisLabelFontSizePixels: 12,
                    axisLabelFontFamily: 'Verdana, Arial',
                    axisLabelPadding: 20
                },
                legend: {
                    noColumns: 2,
                    show: true,
                    container: "#legendTotalTPS"
                },
                selection: {
                    mode: 'xy'
                },
                grid: {
                    hoverable: true // IMPORTANT! this is needed for tooltip to
                                    // work
                },
                tooltip: true,
                tooltipOpts: {
                    content: "%s at %x was %y transactions / sec"
                },
                colors: ["#9ACD32", "#FF6347"]
            };
        },
    createGraph: function () {
        var data = this.data;
        var dataset = prepareData(data.result.series, $("#choicesTotalTPS"));
        var options = this.getOptions();
        prepareOptions(options, data);
        $.plot($("#flotTotalTPS"), dataset, options);
        // setup overview
        $.plot($("#overviewTotalTPS"), dataset, prepareOverviewOptions(options));
    }
};

// Total Transactions per second
function refreshTotalTPS(fixTimestamps) {
    var infos = totalTPSInfos;
    // We want to ignore seriesFilter
    prepareSeries(infos.data, false, true);
    if(fixTimestamps) {
        fixTimeStamps(infos.data.result.series, 28800000);
    }
    if(isGraph($("#flotTotalTPS"))){
        infos.createGraph();
    }else{
        var choiceContainer = $("#choicesTotalTPS");
        createLegend(choiceContainer, infos);
        infos.createGraph();
        setGraphZoomable("#flotTotalTPS", "#overviewTotalTPS");
        $('#footerTotalTPS .legendColorBox > div').each(function(i){
            $(this).clone().prependTo(choiceContainer.find("li").eq(i));
        });
    }
};

// Collapse the graph matching the specified DOM element depending the collapsed
// status
function collapse(elem, collapsed){
    if(collapsed){
        $(elem).parent().find(".fa-chevron-up").removeClass("fa-chevron-up").addClass("fa-chevron-down");
    } else {
        $(elem).parent().find(".fa-chevron-down").removeClass("fa-chevron-down").addClass("fa-chevron-up");
        if (elem.id == "bodyBytesThroughputOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshBytesThroughputOverTime(true);
            }
            document.location.href="#bytesThroughputOverTime";
        } else if (elem.id == "bodyLatenciesOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshLatenciesOverTime(true);
            }
            document.location.href="#latenciesOverTime";
        } else if (elem.id == "bodyCustomGraph") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshCustomGraph(true);
            }
            document.location.href="#responseCustomGraph";
        } else if (elem.id == "bodyConnectTimeOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshConnectTimeOverTime(true);
            }
            document.location.href="#connectTimeOverTime";
        } else if (elem.id == "bodyResponseTimePercentilesOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshResponseTimePercentilesOverTime(true);
            }
            document.location.href="#responseTimePercentilesOverTime";
        } else if (elem.id == "bodyResponseTimeDistribution") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshResponseTimeDistribution();
            }
            document.location.href="#responseTimeDistribution" ;
        } else if (elem.id == "bodySyntheticResponseTimeDistribution") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshSyntheticResponseTimeDistribution();
            }
            document.location.href="#syntheticResponseTimeDistribution" ;
        } else if (elem.id == "bodyActiveThreadsOverTime") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshActiveThreadsOverTime(true);
            }
            document.location.href="#activeThreadsOverTime";
        } else if (elem.id == "bodyTimeVsThreads") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshTimeVsThreads();
            }
            document.location.href="#timeVsThreads" ;
        } else if (elem.id == "bodyCodesPerSecond") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshCodesPerSecond(true);
            }
            document.location.href="#codesPerSecond";
        } else if (elem.id == "bodyTransactionsPerSecond") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshTransactionsPerSecond(true);
            }
            document.location.href="#transactionsPerSecond";
        } else if (elem.id == "bodyTotalTPS") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshTotalTPS(true);
            }
            document.location.href="#totalTPS";
        } else if (elem.id == "bodyResponseTimeVsRequest") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshResponseTimeVsRequest();
            }
            document.location.href="#responseTimeVsRequest";
        } else if (elem.id == "bodyLatenciesVsRequest") {
            if (isGraph($(elem).find('.flot-chart-content')) == false) {
                refreshLatenciesVsRequest();
            }
            document.location.href="#latencyVsRequest";
        }
    }
}

/*
 * Activates or deactivates all series of the specified graph (represented by id parameter)
 * depending on checked argument.
 */
function toggleAll(id, checked){
    var placeholder = document.getElementById(id);

    var cases = $(placeholder).find(':checkbox');
    cases.prop('checked', checked);
    $(cases).parent().children().children().toggleClass("legend-disabled", !checked);

    var choiceContainer;
    if ( id == "choicesBytesThroughputOverTime"){
        choiceContainer = $("#choicesBytesThroughputOverTime");
        refreshBytesThroughputOverTime(false);
    } else if(id == "choicesResponseTimesOverTime"){
        choiceContainer = $("#choicesResponseTimesOverTime");
        refreshResponseTimeOverTime(false);
    }else if(id == "choicesResponseCustomGraph"){
        choiceContainer = $("#choicesResponseCustomGraph");
        refreshCustomGraph(false);
    } else if ( id == "choicesLatenciesOverTime"){
        choiceContainer = $("#choicesLatenciesOverTime");
        refreshLatenciesOverTime(false);
    } else if ( id == "choicesConnectTimeOverTime"){
        choiceContainer = $("#choicesConnectTimeOverTime");
        refreshConnectTimeOverTime(false);
    } else if ( id == "choicesResponseTimePercentilesOverTime"){
        choiceContainer = $("#choicesResponseTimePercentilesOverTime");
        refreshResponseTimePercentilesOverTime(false);
    } else if ( id == "choicesResponseTimePercentiles"){
        choiceContainer = $("#choicesResponseTimePercentiles");
        refreshResponseTimePercentiles();
    } else if(id == "choicesActiveThreadsOverTime"){
        choiceContainer = $("#choicesActiveThreadsOverTime");
        refreshActiveThreadsOverTime(false);
    } else if ( id == "choicesTimeVsThreads"){
        choiceContainer = $("#choicesTimeVsThreads");
        refreshTimeVsThreads();
    } else if ( id == "choicesSyntheticResponseTimeDistribution"){
        choiceContainer = $("#choicesSyntheticResponseTimeDistribution");
        refreshSyntheticResponseTimeDistribution();
    } else if ( id == "choicesResponseTimeDistribution"){
        choiceContainer = $("#choicesResponseTimeDistribution");
        refreshResponseTimeDistribution();
    } else if ( id == "choicesHitsPerSecond"){
        choiceContainer = $("#choicesHitsPerSecond");
        refreshHitsPerSecond(false);
    } else if(id == "choicesCodesPerSecond"){
        choiceContainer = $("#choicesCodesPerSecond");
        refreshCodesPerSecond(false);
    } else if ( id == "choicesTransactionsPerSecond"){
        choiceContainer = $("#choicesTransactionsPerSecond");
        refreshTransactionsPerSecond(false);
    } else if ( id == "choicesTotalTPS"){
        choiceContainer = $("#choicesTotalTPS");
        refreshTotalTPS(false);
    } else if ( id == "choicesResponseTimeVsRequest"){
        choiceContainer = $("#choicesResponseTimeVsRequest");
        refreshResponseTimeVsRequest();
    } else if ( id == "choicesLatencyVsRequest"){
        choiceContainer = $("#choicesLatencyVsRequest");
        refreshLatenciesVsRequest();
    }
    var color = checked ? "black" : "#818181";
    if(choiceContainer != null) {
        choiceContainer.find("label").each(function(){
            this.style.color = color;
        });
    }
}

